#include<iostream>
#include<unistd.h>
using namespace std;

// int main()
// {
//     // pid_t pid;

    // printf("before fork pid is %d \n", getpid());
    // if((pid = fork()) == -1) perror("fork"), exit(EXIT_SUCCESS); //优先级 ： == > = 所以括号一定要打
    // printf("after fork pid is %d, return fork is %d\n", getpid(), pid);
    // sleep(1);

    // return 0;


// int main() 
// {
//     // printf("执行前：这是原进程\n");
//     // sleep(5);

//     // // 执行 /bin/ls 程序，参数为 "ls", "-l", NULL
//     // int ret = execl("/bin/ls", "ls", "-l", NULL);

//     // // 如果 execl 成功，下面的代码不会执行
//     // perror("execl 失败");  // 仅在失败时执行
//     // return 1;

//     const char *argv[] = {"echo", "Hello, exec!", NULL};  // 参数数组

//     // 执行 echo 程序（在 PATH 中搜索）
//     int ret = execvp("echo", (char* const*)argv);

//     perror("execvp 失败");
//     return 1;
// }


// void cleanup() {
//     printf("执行清理函数\n");
// }

// int main() {
//     atexit(cleanup); // 注册清理函数
//     exit(0);         // 会执行 cleanup()
//     //_exit(0); //不会执行cleanup()
// }